#!/usr/bin/env python3
"""
创建测试内容数据
"""

from models import SessionLocal, User, Content, ContentTag, ContentMedia, Tag
from datetime import datetime

def create_test_content():
    """创建测试内容"""
    db = SessionLocal()
    try:
        # 获取用户（使用第一个用户）
        user = db.query(User).first()
        if not user:
            print("❌ 数据库中没有用户")
            return
        
        print(f"✅ 使用用户: {user.username or user.nickname} (ID: {user.id})")
        
        # 获取标签（音乐、咖啡等）
        tags = db.query(Tag).filter(Tag.name.in_(['音乐', '咖啡', '艺术', '旅行'])).all()
        if not tags:
            print("❌ 未找到标签")
            return
        
        print(f"✅ 找到标签: {[t.name for t in tags]}")
        
        # 创建内容
        content = Content(
            title="我的第一篇分享",
            description="这是测试内容，用于验证推荐系统。我选择了音乐、咖啡、艺术等标签。",
            author_id=user.id,
            status=2,  # 已发布
            view_count=0,
            like_count=0,
            comment_count=0,
            share_count=0,
            collect_count=0,
            published_at=datetime.utcnow()
        )
        
        db.add(content)
        db.flush()  # 获取content.id
        
        print(f"✅ 创建内容成功，ID: {content.id}")
        
        # 添加标签关联
        for tag in tags:
            content_tag = ContentTag(
                content_id=content.id,
                tag_id=tag.id
            )
            db.add(content_tag)
        
        # 添加媒体文件（使用占位图片）
        media = ContentMedia(
            content_id=content.id,
            media_url="/static/uploads/placeholder.jpg",
            media_type="image",
            sort_order=1
        )
        db.add(media)
        
        db.commit()
        
        print(f"\n✅ 测试内容创建成功！")
        print(f"   内容ID: {content.id}")
        print(f"   标题: {content.title}")
        print(f"   标签: {[t.name for t in tags]}")
        print(f"\n💡 现在你可以:")
        print(f"   1. 刷新前端页面")
        print(f"   2. 选择相同的标签")
        print(f"   3. 查看推荐内容")
        
    except Exception as e:
        print(f"❌ 创建内容失败: {e}")
        db.rollback()
    finally:
        db.close()

if __name__ == "__main__":
    create_test_content()

